home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / info-service / gopher / Unix / NeXTtext / text / search.h < prev    next >
Encoding:
C/C++ Source or Header  |  1991-10-06  |  1.7 KB  |  52 lines

  1. #ifndef    _SEARCH_H_
  2. #define    _SEARCH_H_
  3.  
  4. #import <regex.h>
  5. #import <stdio.h>
  6. #import "text/egrep.h"
  7.  
  8. extern char *foundWord;            /* word previously found by findWord */
  9. extern int binarySearchIgnoreCase;
  10.  
  11. #define bm_table_size        256
  12.  
  13. typedef struct bm_machine    {
  14.     unsigned short    plength;
  15.     unsigned short    skiptab[bm_table_size];
  16.     char        casemap[bm_table_size];
  17.     char        pattern[0];
  18. } bm_machine;
  19.  
  20. /* functions for matching regular expressios */
  21. extern char *re_match_within(char *s, struct regex *re);
  22. extern char *re_match_prefix(char *s, struct regex *re);
  23. extern char *re_match_word(char *s, struct regex *re);
  24. extern char *re_match_exactly(char *s, struct regex *re);
  25. extern char *re_search(int fd, char *context, 
  26.     char *(*routine)(char *, struct regex *), struct regex *re);
  27.  
  28. /* functions for string matching */
  29. extern bm_machine *bm_compile(char *s, int ignore_case);
  30. extern char *bm_match(char *s, int slength, bm_machine *machine);
  31. extern char *bm_match_prefix(char *s, int slength, bm_machine *machine);
  32. extern char *bm_match_word(char *s, int slength, bm_machine *machine);
  33. extern char *bm_match_exactly(char *s, int slength, bm_machine *machine);
  34. extern char *bm_search(int fd, char *context, 
  35.     char *(*routine)(char *, int, bm_machine *), bm_machine *machine);
  36.  
  37. /* functions for binary searching sorted files */
  38. extern BSbcompare(char *s, char *t);
  39. extern BSfcompare(char *s, char *t);
  40. extern char *BinarySearch(FILE *f, char *word);
  41. extern char *binarySearch(FILE *f, char *word, 
  42.     char *s, int s_len, int (*compare)(char *, char *));
  43. extern long refOffset(char *s);
  44. extern long findWord(FILE *f, char *word);
  45.  
  46. /* ancillary searching functions */
  47. extern char *isFunctionWord(char *s);
  48.  
  49.  
  50. #endif
  51.  
  52.